1. Field of the Disclosure
The disclosure relates to the efficient use of the limited capacity of wireless links in a network and, more particularly, wireless systems, equipment, and methods that favor the transport of high-priority data first, regardless of which network node it comes from.
2. Description of the Related Art
In the past few years, both wired and wireless data networks have become common place and relatively inexpensive. These networks take many forms, use many different protocols, and carry a variety of data. For example, the data may represent voice, music, video, web pages, documents, files, bank/financial transactions, etc.
In a packet network that carries a variety of data, the delivery of some packets is more urgent than the delivery of other packets. The urgent packets have high priority (or high “quality of service”, though that term encompasses more than priority).
For traditional wired networks, there are well-known mechanisms for managing multi-priority traffic flow. These mechanisms include integrated services (IntServ) or differentiated services (DiffServ) at the network layer of the OSI stack and Multiprotocol Label Switching (MPLS) at the link layer. In these mechanisms, each packet sent onto the network has a data field that defines its priority or type of service. For example, “type of service” is the name of the data field in an Internet Protocol packet.
Packets arriving at a network router or switch are placed in buffers (or queues) according to their priority. When the router's outgoing wire is not occupied, the router examines its buffers and forwards a packet from the highest-priority buffer that's not empty. In a simple case, for example, if there are four levels of priority with level 1 being most urgent, and a router currently has packets in buffers for levels 2 and 3, it will select a packet from the level 2 buffer and forward it to the next node in the network. Only when the buffers for priority levels 1 and 2 are empty will the router forward packets from the level 3 buffer. Most quality of service mechanisms, however, include fairness metrics and traffic metering systems to ensure that low-priority data streams are not completely blocked.
These prior-art mechanisms work well for wired networks where each wired link has constant capacity and its capacity is independent of other links. A problem arises, however, when the capacity of some links is small and the total capacity is shared among several links. This is often the case in wireless networks: a limited amount of spectrum is shared among several wireless links.
The capacity of a link is typically measured in bits per second. The link capacity is sometimes called the bandwidth of the link; however, the term “bandwidth” is more properly used for the spectral width of a channel, measured in Hertz.
Because existing network protocols are built on the assumption that each link has constant capacity that is independent of other links, many wireless networks enforce that assumption for wireless links. These networks are therefore inefficient at moving priority data.
Consider the case of two wireless nodes B and C in communication with node A. Node A connects to a wired network. One example of node A is a wireless access point. Nodes B and C each need to send 100 packets of data. For node B, 90 of its packets are priority 1 and 10 are priority 3. For node C, 90 of its packets are priority 2 and 10 are priority 4.
Using a wireless protocol like IEEE 802.11a, nodes B and C have equal access to the wireless medium via a scheme that uses carrier-sense multiple access with collision detection (CSMA/CD). Nodes B and C will attempt to send packets equally often. On average, both will transmit packets at about the same rate. Thus, the links from nodes B and C have about the same capacity even though node B is sending higher priority data. Consequently, the node C priority 2 data will be transferred over the network at the same rate as the node B priority 1 data. This problem arises because the two data flows originate at different nodes. The router on node B can forward the priority 1 data ahead of priority 3, but it cannot prevent node C from using half the capacity of the shared spectrum to transport priority 2 data.
In an attempt to address this problem, some wireless network protocols allow the network operator (or manager) to assign different priorities to each node regardless of the priority value in each packet's “type of service” field; the node priority is used to dynamically assign capacity to each link.
The IEEE 802.16 hub-and-spoke TDMA standard is an example of one of these protocols. Continuing our example with nodes A, B, and C, the network operator using the IEEE 802.16 protocol could assign node B a higher priority than node C. Nodes B and C each signal to node A that their buffers have many packets to send (802.16 includes a protocol for signaling buffer fullness). Node A, as the hub, assigns node B most of the TDMA slots because node B has higher priority. This works fine while node B is sending its 90 packets of priority 1 data. However, it is inefficient (from the perspective of sending data based on priority) when B runs out of priority 1 packets and starts sending priority 3 packets.
Consequently, the node-assigned-priority mechanism does not recognize the case where a high-priority node is sending only low-priority data. It gives node B more capacity as long as it has any packets to send, regardless of those packets' priority. This causes inefficient use of the available spectrum.
A third approach is taken in some wireless military networks. For example, the Link16 network assigns capacity in advance, e.g. by assigning TDMA slots to each node. This assures that each node gets some capacity. However, it does not make efficient use of spectrum since each node gets its full allocation, regardless of whether the data comes from a node that's currently not participating in combat operations or from a node that is receiving enemy fire and calling for help. Clearly the latter node should get priority, but a fixed-assignment network cannot dynamically reassign capacity to support the dynamic need.
The IntServ/RSVP protocol suite is slightly more dynamic. Rather than assigning all the network capacity before operation, RSVP allows a node to reserve capacity for a stream of packets whenever it wants to start a new stream. This assures that no authorized stream of packets will be blocked after it begins. However, if all the network capacity is reserved, RSVP does not allow a new stream to get any capacity, regardless of its priority.
Only human-in-the-loop, shared-capacity voice networks currently can dynamically allocate capacity based on priority. These are the classic push-to-talk voice radios used by pilots and Air Traffic Control, police, and many military forces. When a user wants to transmit a voice message to another user, he or she waits until nobody else is talking, presses the button to talk, and begins talking; if two users begin talking at the same time, both stop and try again. (In this sense, the voice channel works like CSMA/CD.) Unlike 802.11a, however, there is a priority scheme for deciding who gets the most network capacity. If a pilot declares an emergency, other pilots stay off the channel as much as possible. Certain police codes, such as the one that means “shots fired, officer down”, require other officers to clear the channel. In the US Army, a nuclear blast report has priority over all other messages. These human-to-human agreements allow efficient, rapid transmission of the most urgent voice messages over a shared channel with limited capacity.
Many products use wireless communication networks. The majority of these products transmit data whose priority (from the user perspective) varies dynamically. For example, an aircraft may periodically transmit data about the health of its on-board systems. While the systems are healthy, the transmission data rate is low and the priority of the transmission is low. Therefore, other users of the wireless spectrum should be able to use some of the network's capacity. However, when a system on the aircraft begins to fail, the aircraft may be programmed to transmit more data with higher priority so operators on the ground can assess whether it is safe to continue the flight. This is a common situation for unmanned aircraft and for flight tests of manned aircraft. During an event like this, more network capacity should be assigned the aircraft that is experiencing the failure, if necessary to meet the needs of the emergency. Consequently, other users of the wireless spectrum would get less capacity until the problem was resolved. However, current mechanisms do not enable capacity to be reassigned in an automated way.
Accordingly, there is a need for an automated wireless network carrying data with differing priorities and dynamic data rates to preferentially transport higher priority data.